/*************************************************************************
	> File Name: TemplateMethod.h
	> Author: Joker
	> Mail: mahongtao@foxmail.com 
	> Created Time: 2020-09-22 12:18:47
 ************************************************************************/

#ifndef __TMPLATEMETHOD_H__
#define __TMPLATEMETHOD_H__

class AbstratClass
{
public:
    AbstratClass(){}
    virtual ~AbstratClass(){}
    
    void TemplateMethod();

protected:
    virtual void PrimitiveOperation1() = 0;
    virtual void PrimitiveOperation2() = 0;
};

class ConcreateClass
:public AbstratClass
{
public:
    ConcreateClass(){}
    virtual ~ConcreateClass(){}

protected:
    virtual void PrimitiveOperation1();
    virtual void PrimitiveOperation2();
};

#endif
